<?php
/**
 * Created by PhpStorm.
 * User: netstan
 * Date: 14-5-11
 * Time: 下午1:49
 */

/**
 * 快速排序法
 * @param $arr @需要排序数组
 */

function quickSort(&$arr) {
    $size = count($arr);
    if ($size <= 1) {
        return $arr ? $arr : array();
    }

    $left_Arr  = $right_Arr = array();
    $key = $arr[0];
    $num = $size - 1;

    for ($i = 1; $i <= $num; $i++) {
        if ($arr[$i] <= $key) {
            $left_Arr[] = $arr[$i];
        } else {
            $right_Arr[] = $arr[$i];
        }
    }


    $left_Arr = quickSort($left_Arr);
    $right_Arr = quickSort($right_Arr);

    return array_merge($left_Arr, array($key), $right_Arr);
}

$arr = array(1,-2,3,4,-9-8,-3,99,2);
$arr = quickSort($arr);
var_dump($arr);